<script>
  function xhr(options) {
    return new Promise(function(resolve, reject) {
      var xhr = new XMLHttpRequest();
      xhr.open(options.type || 'GET', options.url);
      xhr.onreadystatechange = function() {
        if (xhr.readyState === XMLHttpRequest.DONE) {
          if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {
            resolve(xhr.responseText);     // 成功时执行的函数
          } else {
            reject('服务器发生错误。');    // 失败时执行的函数
          }
        }
      };
      xhr.send(options.data);
    });
  }
  
  var fd = new FormData();
  fd.append('num', 100);
  
  xhr({url: 'test.php', type: 'POST', data: fd})
  .then(function(data) {
    console.log('请求成功：' + data);
  }, function(err) {
    console.log('请求失败：' + err);
  });
  
  xhr({url: '1.txt', type: 'POST', data: fd})
  .then(function(data) {
    console.log('请求成功：' + data);
  })
  .catch(function(err) {
    console.log('发生异常：' + err);
  });
  
  xhr({url: 'test.php', type: 'POST', data: fd})
  .then(function(data) {
    console.log('第1次请求结果：' + data);
    return xhr({url: 'test.php', type: 'POST', data: fd});
  })
  .then(function(data) {
    console.log('第2次请求结果：' + data);
  })
  .catch(function(err) {
    console.log('发生异常：' + err);
  });
</script>
<p>
  <a href="file:///C:/Users/rise/Desktop/%E9%A6%96%E9%A1%B5/default/10.html">返回</a>
</p>